﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;

namespace DIProject.ReceptionGoods
{
    public partial class PrintNakl : Form
    {
        Int32 _docId;
        string _docNumber;
        string _sellerName;
        DateTime _docDate;
        public PrintNakl(Int32 docId,string docNumber,string sellerName,DateTime docDate)
        {
            _docId = docId;
            _docDate = docDate;
            _docNumber = docNumber;
            _sellerName = sellerName;
            InitializeComponent();
        }
        private string ReportFilePath
        {
            get
            {
                string result = string.Empty;
                string systemPath = System.Configuration.ConfigurationManager.AppSettings["ReportsPath"];
                if (string.IsNullOrEmpty(systemPath))
                {
                    throw new Util.DIException("Требуется задать путь к программе в конфигурационном файле");
                }
                string reportPath = System.Configuration.ConfigurationManager.AppSettings["Nakl"];
                if (string.IsNullOrEmpty(reportPath))
                {
                    throw new Util.DIException("Требуется задать путь файлам отчета");

                }
                return systemPath + reportPath;
            }
            
        }
        private string GetSumm1
        {
            get
            {
                DataSets.UtilTableAdapters.UtilQueries adapter = new DIProject.DataSets.UtilTableAdapters.UtilQueries();
                object o = adapter.GetNLKDSumm(_docId);
                if (Convert.IsDBNull(o))
                    return "0";
                return Convert.ToString(o);
            }
        }
        private void PrintNakl_Load(object sender, EventArgs e)
        {
            DataSets.waybillsDataTableAdapters.CurrentNaklTableAdapter adapter = new DIProject.DataSets.waybillsDataTableAdapters.CurrentNaklTableAdapter();
            DataSets.waybillsData.CurrentNaklDataTable tab = adapter.GetData(_docId);            
            NKLD1.FileName = this.ReportFilePath;
            NKLD1.Load();
            NKLD1.SetDataSource(tab as DataTable);
            NKLD1.SetParameterValue("DocNumber",_docNumber);
            NKLD1.SetParameterValue("SummNakl", this.GetSumm1);
            string CountRow = tab.Count.ToString();
            NKLD1.SetParameterValue("CountRow", CountRow);
            NKLD1.SetParameterValue("SellerName", _sellerName);
            NKLD1.SetParameterValue("DocDate", _docDate);

        }
        private string GetSumm(DataSets.waybillsData.CurrentNaklDataTable tab)
        {
            double res = 0;
            foreach (DataSets.waybillsData.CurrentNaklRow row in tab.Rows)
            {
                if (row.IsSupplierPriceNull())
                {
                    MessageBox.Show("В одной или нескольких позициях неуказана цена поставщика. Посчитать сумму невозможно");
                    return "Невозможно посчитать сумму!";
                }
                res += Convert.ToDouble(row.SupplierPrice * row.DocQntty);
            }
            return res.ToString();
        }
    }
}